www.gusucode.com > VANET Toolbox- A Vehicular Network Simulator based on DES 程序工具箱matlab源码 > VANET Toolbox- A Vehicular Network Simulator based on DES/VANET_Toolbox/VANET_Toolbox_2018a/phy_psdu2waveform.m

    function [waveform,psduLength] = phy_psdu2waveform( varargin )

%   varargin:
    %   varargin{1}-> Data(0) 
        %   varargin{2}-> TA
        %   varargin{3}-> RA
        %   varargin{4}-> Data payload;  ACK has no payload
    % varargin{1}-> ACK(1)
        %varargin{2}-> TA, tell TA packet is delivered;
        %varargin{3}-> Sequence number, currently using BUS, should change
        %in the future
        
        
        
    switch varargin{1}
        case 0  %data
            payload=de2bi(varargin{4});
            inframe=macFrame();        
            inframe.typeField=macFrame.DATATYPE;
            inframe.data=reshape(payload',[1,numel(payload)]);
            inframe.address1Field=varargin{2};  % Transmitter Address (TA)
            inframe.address3Field=varargin{3};  % Receiver Address (RA)

        case 1  %ACK
            inframe=macFrame();        
            inframe.address1Field=varargin{2};  % ACK only has Reciever Address (RA)         
    end       
    
    cbw = 'CBW10';
    % Create a format configuration object for a SISO nonHT transmission
    cfgnonHT = wlanNonHTConfig();
    cfgnonHT.NumTransmitAntennas = 1;    % 1 transmit antennas 
    cfgnonHT.ChannelBandwidth = cbw;
    psduLength = floor(numel(inframe.frameArray)/8); % the PSDU is in bytes and the frameArray are bits
    cfgnonHT.PSDULength=psduLength; 
    waveform = wlanWaveformGenerator(double(inframe.frameArray),cfgnonHT);

    % Add trailing zeros to allow for channel filter delay
    waveform = [waveform; zeros(15,cfgnonHT.NumTransmitAntennas)];
    
end